/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

import TypeScriptServiceClientHost from '../typeScriptServiceClientHost';
import { CommandManager } from '../utils/commandManager';
import { Lazy } from '../utils/lazy';
import { PluginManager } from '../utils/plugins';
import { ConfigurePluginCommand } from './configurePlugin';
import { TypeScriptGoToProjectConfigCommand } from './goToProjectConfiguration';
import { OpenTsServerLogCommand } from './openTsServerLog';
import { ReloadTypeScriptProjectsCommand } from './reloadProject';
import { RestartTsServerCommand } from './restartTsServer';
import { SelectTypeScriptVersionCommand } from './selectTypeScriptVersion';
import { 插入词典标签命令_ as 插入词典头命令_ } from "../features/cts/ctsCommands/insertDictCommand"
import { 项目迁移命令_ } from '../features/cts/ctsCommands/projectMigrationCommand';
import { 提取词典文件命令_ } from '../features/cts/ctsCommands/extractDictFileCommand';
import { 转换当前文件命令_ } from '../features/cts/ctsCommands/asCurrentFile';
import { 翻译参数标识符_ } from '../features/cts/ctsCommands/translateParamIdentifierCommand';
import { 整理外部词典文件_ } from '../features/cts/ctsCommands/arrangeExtemalDictFileCommand';
import { 外部词典编辑命令_ } from '../features/cts/ctsCommands/externalDictEditCommand';

export function registerCommands(
	commandManager: CommandManager,
	lazyClientHost: Lazy<TypeScriptServiceClientHost>,
	pluginManager: PluginManager
) {
	commandManager.register(new ReloadTypeScriptProjectsCommand(lazyClientHost));
	commandManager.register(new SelectTypeScriptVersionCommand(lazyClientHost));
	commandManager.register(new OpenTsServerLogCommand(lazyClientHost));
	commandManager.register(new RestartTsServerCommand(lazyClientHost));
	commandManager.register(new TypeScriptGoToProjectConfigCommand(lazyClientHost));
	commandManager.register(new ConfigurePluginCommand(pluginManager));
	commandManager.register(new 插入词典头命令_());
	commandManager.register(new 项目迁移命令_(lazyClientHost));
	commandManager.register(new 提取词典文件命令_(lazyClientHost));
	commandManager.register(new 转换当前文件命令_(lazyClientHost));
	commandManager.register(new 翻译参数标识符_());
	commandManager.register(new 整理外部词典文件_(lazyClientHost));
	commandManager.register(new 外部词典编辑命令_(lazyClientHost));
	// 外部词典编辑命令_
}
